Micron Document
`:top
En programmation, une `!`F33f`_`[annotation`:/page/wikibook/entry.mu`zim=wikipedia_fr_all_nopic_2025-10.zim|entry_path=Annotation_(informatique)]`_`f Java`! est une façon d'ajouter des `F33f`_`[méta-données`:/page/wikibook/entry.mu`zim=wikipedia_fr_all_nopic_2025-10.zim|entry_path=Méta-donnée]`_`f à un `F33f`_`[code source`:/page/wikibook/entry.mu`zim=wikipedia_fr_all_nopic_2025-10.zim|entry_path=Code_source]`_`f `F33f`_`[Java`:/page/wikibook/entry.mu`zim=wikipedia_fr_all_nopic_2025-10.zim|entry_path=Java_(langage)]`_`f. Elles peuvent être ajoutées aux classes, méthodes, attributs, paramètres, `F33f`_`[variables locales`:/page/wikibook/entry.mu`zim=wikipedia_fr_all_nopic_2025-10.zim|entry_path=Variable_locale]`_`f et paquets.

>>Contents

• `F0af`_`[Historique des annotations Java`#historique-des-annotations-java]`_`f
• `F0af`_`[Comment les annotations Java sont traitées`#comment-les-annotations-java-sont-trait-es]`_`f
• `F0af`_`[Syntaxe de l'annotation`#syntaxe-de-l-annotation]`_`f
• `F0af`_`[Voir aussi`#voir-aussi]`_`f
• `F0af`_`[Références`#r-f-rences]`_`f

-─

>>Historique des annotations Java

Les annotations Java ont été introduites en 2002 à travers le `F33f`_`[JCP`:/page/wikibook/entry.mu`zim=wikipedia_fr_all_nopic_2025-10.zim|entry_path=Java_Community_Process]`_`f (JSR-175) et ont été approuvées en septembre 2004. Les annotations sont disponibles avec le `F33f`_`[JDK`:/page/wikibook/entry.mu`zim=wikipedia_fr_all_nopic_2025-10.zim|entry_path=Environnement_d'exécution_Java]`_`f version 1.5.

Elles ont été introduites en tant qu'alternative aux fichiers de configuration `F33f`_`[XML`:/page/wikibook/entry.mu`zim=wikipedia_fr_all_nopic_2025-10.zim|entry_path=Extensible_Markup_Language]`_`f. Elles trouvent leurs sources dans les libellés ajoutés directement dans la documentation Java (`F33f`_`[Javadoc`:/page/wikibook/entry.mu`zim=wikipedia_fr_all_nopic_2025-10.zim|entry_path=Javadoc]`_`f) qui sont ensuite traitées par des outils tels que `F33f`_`[XDoclet`:/page/wikibook/entry.mu`zim=wikipedia_fr_all_nopic_2025-10.zim|entry_path=XDoclet]`_`f pour générer les `F33f`_`[fichiers de configuration`:/page/wikibook/entry.mu`zim=wikipedia_fr_all_nopic_2025-10.zim|entry_path=Fichier_de_configuration]`_`f XML. Ceci évite d'écrire ces fichiers à la main car c'est un procédé ennuyeux et sujet à erreur.

Contrairement aux libellés `F33f`_`[XDoclet`:/page/wikibook/entry.mu`zim=wikipedia_fr_all_nopic_2025-10.zim|entry_path=XDoclet]`_`f, les annotations Java peuvent (si besoin) être accessibles au programmeur lors de l'exécution du programme grâce à la `F33f`_`[réflexion`:/page/wikibook/entry.mu`zim=wikipedia_fr_all_nopic_2025-10.zim|entry_path=Réflexion_(informatique)]`_`f.

>>Comment les annotations Java sont traitées

Lors de la compilation des codes sources, le `F33f`_`[compilateur`:/page/wikibook/entry.mu`zim=wikipedia_fr_all_nopic_2025-10.zim|entry_path=Compilateur]`_`f Java stocke les méta-données d'annotation dans les fichiers classes. Plus tard, la `F33f`_`[JVM`:/page/wikibook/entry.mu`zim=wikipedia_fr_all_nopic_2025-10.zim|entry_path=Machine_virtuelle_java]`_`f ou d'autres programmes peuvent accéder à ces méta-données pour déterminer comment interagir avec les composants du programme ou changer leur comportement. Les annotations (que vous pouvez créer) peuvent être elles-mêmes annotées avec une annotation `B100`F9d9Retention`f`b qui indique si cette annotation doit être embarquée dans le fichier classe, accessible dans l'environnement d'exécution ou simplement rester au niveau du code source (TODO).

>>Syntaxe de l'annotation

La déclaration des annotations est une variante des libellés ajoutés aux commentaires par le passé. Les annotations prennent la forme d'une déclaration d'interface précédée du caractère `*@`*, et facultativement suivies de méta-annotations, comme montré ci-dessous :

`B100`F9d9 @Retention(RetentionPolicy.RUNTIME)`f`b
`B100`F9d9 @Target({ElementType.METHOD})`f`b

Dans cet exemple, `!Retention`! et `!Target`! sont des exemples d'annotations.

Les annotations ne faisant rien de particulier elles-mêmes, il faut ensuite écrire du code Java spécifique pour tirer parti des annotations définies par le programmeur. Ce code peut être exécuté soit lors de la compilation (ex: project lombok), soit lors de l'exécution comme avec les annotations `F33f`_`[Hibernate`:/page/wikibook/entry.mu`zim=wikipedia_fr_all_nopic_2025-10.zim|entry_path=Hibernate]`_`f pour la `F33f`_`[persistance`:/page/wikibook/entry.mu`zim=wikipedia_fr_all_nopic_2025-10.zim|entry_path=Persistance_(informatique)]`_`f.

>>Voir aussi

• `F33f`_`[Java (langage)`:/page/wikibook/entry.mu`zim=wikipedia_fr_all_nopic_2025-10.zim|entry_path=Java_(langage)]`_`f
• `F33f`_`[Model driven architecture`:/page/wikibook/entry.mu`zim=wikipedia_fr_all_nopic_2025-10.zim|entry_path=Model_driven_architecture]`_`f
• `F33f`_`[Machine virtuelle Java`:/page/wikibook/entry.mu`zim=wikipedia_fr_all_nopic_2025-10.zim|entry_path=Machine_virtuelle_Java]`_`f

>>Références

• (en) « A Metadata Facility for the JavaTM Programming Language »

• Portail de la programmation informatique

`c`F0af`_`[↑ Back to top`#top]`_`f`a